﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using RRHH.BusinessLogic;
using RRHH.Entities;

namespace SOAPService
{
    public class RRHH : IRRHHService2
    {
        private BLPersonal _BLPersonal= null;
        // INI CAMBIOS BENITES
        private BLEstadoCivil _BLEstCivil = null;
        private BLUbigeo _blUbigeo = null;
        // FIN CAMBIOS BENITES
       

        public BEPersonal CrearPersonal(BEPersonal personal)
        {
            _BLPersonal = new BLPersonal();
            return _BLPersonal.Create(personal);
        }

        public bool ModificarPersonal(int personalID, string nombre, string apellidoPaterno, string apellidoMaterno)
        {
            _BLPersonal= new BLPersonal();
            BEPersonal newPersonal = new BEPersonal();

            newPersonal = _BLPersonal.Get(personalID);

            newPersonal.NOMBRESEMPLEADO = nombre;
            newPersonal.APEPATERNOEMPLEADO = apellidoPaterno;
            newPersonal.APEMATERNOEMPLEADO = apellidoMaterno;

            return _BLPersonal.Update(newPersonal);
        }

        public bool EliminarPersonal(int personalID)
        {
            _BLPersonal = new BLPersonal();
            return _BLPersonal.Delete(personalID);
        }

        public List<BEPersonal> ListarPersonal()
        {
            _BLPersonal = new BLPersonal();
            return _BLPersonal.List().ToList();
        }

        public BEPersonal ObtenerPersonal(int personalID)
        {
            _BLPersonal = new BLPersonal();
            return _BLPersonal.Get(personalID);
        }

        public List<String> ConsultarContratosAVencer()
        {

            return null;
        }

        
        /****************************************************************************************
                                                CONTRATO
         ********************************************************************************************/

        
        //public CONTRATO1 CrearContrato(int IDCONTRATO, DateTime FECHAINICIO, DateTime FECHAFIN, string IDTIPOEXTINCION,
        //                        string CODIGOEMPLEADO, int IDBEPersonal, decimal SALARIORECIBO, int IDCARGO,
        //                        int IDESTADO, DateTime FECHACREACION, int VIGENTE, string IDTIPOCONTRATO,
        //                        string FLAGCESADO, DateTime FECHAEXTINCION, string ESTADO) {
                                 
        //    return null;
        //}


        public BEContrato CrearContrato(int IDCONTRATO, DateTime FECHAINICIO, DateTime FECHAFIN, string IDTIPOEXTINCION,
                                string CODIGOEMPLEADO, int IDBEPersonal, decimal SALARIORECIBO, int IDCARGO,
                                int IDESTADO, DateTime FECHACREACION, int VIGENTE, string IDTIPOCONTRATO,
                                string FLAGCESADO, DateTime FECHAEXTINCION, string ESTADO)
        {

            return null;
        }


        //public CONTRATO1 ObtenerContrato(int IDCONTRATO) {

        //    daoContrato = new DAOContrato();
        //    return daoContrato.Get(IDCONTRATO);
        //}

        //public bool EliminarContrato(int IDCONTRATO) {

        //    return true;
        //}

        //public List<CONTRATO1> ListarContrato() {

        //    return null;
        //}


        // INI CAMBIOS BENITES
        //public List<BEEstCivil> ListarEstadosCivil()
        //{
        //    _BLEstCivil = new BLEstadoCivil();
        //    return _BLEstCivil.List();
        //}

        public List<BEDepartamento> ListDepartamento()
        {
            _blUbigeo = new BLUbigeo();
            return _blUbigeo.ListDepartamento();
        }

        public List<BEProvincia> ListProvincia(int idDep)
        {
            _blUbigeo = new BLUbigeo();
            return _blUbigeo.ListProvincia(idDep);
        }

        public List<BEDistrito> ListDistrito(int idDep, int idProv)
        {
            _blUbigeo = new BLUbigeo();
            return _blUbigeo.ListDistrito(idDep, idProv);
        }
        // FIN CAMBIOS BENITES



        /**************************************************************************
         * CARLOS CALDERON
         * ************************************************************************/
        BLMaestroPersonal2 _BLMAestroPersonal = new BLMaestroPersonal2();

        public List<BEMaestroPersonal> ListarIngresosPersonal()
        {            
            return _BLMAestroPersonal.ListarIngresosPersonal();
        }

        public BEIngresoTRegistro EnvioIngresoTRegistro(int personalID, string codigoEmpleado) 
        {
            return _BLMAestroPersonal.EnvioIngresoTRegistro(personalID, codigoEmpleado);
        }



        /************************************************************************************************
        *                          J. SALCEDO MAESTROPERSONAL
        * **********************************************************************************************/

        public List<BEMaestroPersonal> ListarMaestroPersonalXIDPersonal(int personalID) {
            return _BLMAestroPersonal.ListarMaestroPersonalXIDPersonal(personalID);
        }


        public BEMaestroPersonal BuscarMaestroPersonalXID(int personalID, string codigoEmpleado) {
            return _BLMAestroPersonal.BuscarMaestroPersonalXID(personalID, codigoEmpleado);
        }


        public int RegistrarMaestroPersonal(BEMaestroPersonal _BEMaestroPersonal) {
            return _BLMAestroPersonal.RegistrarMaestroPersonal(_BEMaestroPersonal);
        }


        public int ModificarMaestroPersonal(BEMaestroPersonal _BEMaestroPersonal) {
            return _BLMAestroPersonal.ModificarMaestroPersonal(_BEMaestroPersonal);
        }


        /****************************************************************************************
       *                                  MAESTRO PERSONAL   
       * ****************************************************************************************/
        public List<BEBanco> ListarBanco()
        {
           BLBanco _BLBanco = new BLBanco();
           return _BLBanco.ListarBanco();
        }

        public List<BECargo> ListarCargo()
        {
            BLCargo2 _BLCargo = new BLCargo2();
            return _BLCargo.ListarCargo();
        }

        public List<BECatalogo> ListarCatalogo(BECatalogo _OBECatalogo)
        {
            BECatalogo _BECatalogo = new BECatalogo();
            _BECatalogo.idDominio = 11;

            BLCatalogo _BLCatalogo = new BLCatalogo();

            return _BLCatalogo.ListarCatalogo(_BECatalogo);
        }

        public List<BECategoriaEmpleado> ListarCategoriaEmpleado()
        {
            BLCategoriaEmpleado _BLCategoriaEmpleado = new BLCategoriaEmpleado();
            return _BLCategoriaEmpleado.ListarCategoriaEmpleado();
        }

        public List<BECentroCosto> ListarCentroCosto()
        {
            BLCentroCosto _BLCentroCosto = new BLCentroCosto();
            return _BLCentroCosto.ListarCentroCosto();            
        }

        public List<BEClasePlanilla> ListarClasePlanilla()
        {
            BLClasePlanilla _BLClasePlanilla = new BLClasePlanilla();
            return _BLClasePlanilla.ListarClasePlanilla();
        }

        public List<BEEmpresa> ListarEmpresa()
        {
            BLEmpresa _BLEmpresa = new BLEmpresa();
            return _BLEmpresa.ListarEmpresa();
        }

        public List<BEEps> ListarEPS()
        {
            BLEps _BLEps = new BLEps();
            return _BLEps.ListarEPS();
        }
    }
}
